package com.znufe.exam.repository.h5;

import com.znufe.exam.domain.h5.grade.H5ExamInfoOfCourseOfClassResponseObject;
import com.znufe.exam.domain.h5.grade.H5ExamQuestionScoreSituationObject;
import com.znufe.exam.domain.h5.grade.H5StudentExamDetailRequestObject;
import com.znufe.exam.domain.h5.grade.H5StudentExamQuestionAnswerObject;
import com.znufe.exam.viewmodel.h5.H5ClassExamDotimeRequestVM;
import com.znufe.exam.viewmodel.h5.H5ClassExamDotimeResponseVM;
import com.znufe.exam.viewmodel.h5.grade.*;
import org.apache.ibatis.annotations.Mapper;

import java.util.HashMap;
import java.util.List;

@Mapper
public interface H5ExamGradeMapper {

    List<H5ExamPaperOfCourseResponseVM> selectExamPaperListByCourseId(Integer courseId);

    List<H5CourseContentResponseVM> selectCourseInfoByClassId(Integer classId);

    String selectClassNameByClassId(Integer classId);

    List<H5ClassCourseGradeResponseVM> selectClassCourseGrade(H5ClassCourseGradeRequestVM requestVM);

    List<H5ClassExamGradeResponseVM> selectClassExamGrade(H5ClassExamGradeRequestVM requestVM);

    List<H5ClassExamDotimeResponseVM> selectClassExamDoTime(H5ClassExamDotimeRequestVM requestVM);

    Integer selectClassIdByClassName(String className);

    String selectCourseNameByCourseId(Integer courseId);

    Integer selectCourseIdByCourseName(String courseName);

    List<H5StudentIndividualGradeResponseVM> selectStudentIndividualGrade(H5StudentIndividualGradeRequestVM requestVM);

    String selectExamPaperNameByExamPaperId(Integer examPaperId);

    H5StudentExamQuestionAnswerObject selectStuAns(H5StudentExamDetailRequestObject requestObject);

    List<Integer> selectExamPaperIdByClassId(Integer classId);

    List<HashMap<String, Object>> getExamPaperNameMap(List<Integer> examPaperIds);

    List<H5ExamInfoOfCourseOfClassResponseObject> selectExamInfoOfCourseOfClass(H5ExamInfoOfCourseOfClassRequestVM requestVM);

    H5ExamGradeDistributionResponseVM selectExamGradeDistribution(H5ExamGradeDistributionRequestVM requestVM);

    List<H5ExamQuestionScoreSituationObject> selectExamQusScoreSituation(H5ExamGradeDistributionRequestVM requestVM);

}
